package com.tencreat.domain.mall.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencreat.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;


/**
 * 用户对象 mall_user
 *
 * @author tencreat
 * @date 2021-11-10
 */
@Data
public class MallUserVO3 {
    private static final long serialVersionUID = 1L;


    /**
     * $column.columnComment
     */
    @TableId(type = IdType.AUTO)
    @ExcelIgnore
    private Long id;


    /**
     * uuid
     */
    @ExcelProperty(value = "用户ID",order = 1)
    @ApiModelProperty(value = "用户ID")
    @ColumnWidth(9)
    private Long uuid;


    /**
     * 用户手机号码
     */
    @ExcelProperty(value = "手机号码",order = 2)
    @ApiModelProperty(value = "用户手机号码")
    @TableField("`mobile`")
    private String mobile;



    /**
     * 推荐人uuid
     */
    @ExcelProperty(value = "邀请人ID",order = 3)
    @ApiModelProperty(value = "推荐人uuid")
    @ColumnWidth(12)
    @TableField("`referrer_uuid`")
    private Long referrerUuid;


    /**
     * 0 可用, 1 禁用, 2 注销
     */
    @ExcelIgnore
    @ApiModelProperty(value = "0 可用, 1 禁用, 2 注销")
    @TableField("`status`")
    private Integer status;

    /**
     * 0 可用, 1 禁用, 2 注销
     */
    @ExcelProperty(value = "用户状态",order = 5)
    @ApiModelProperty(value = "0 可用, 1 禁用, 2 注销")
    @TableField("`status`")
    private String statusDesc;

    /**
     * 余额
     */
//    @ExcelProperty(value = "余额",order = 5)
    @ExcelIgnore
    @ApiModelProperty(value = "余额")
    @TableField("`balance`")
    private BigDecimal balance;


   /* @ApiModelProperty("用户svip到期时间")
    @ExcelProperty(value = "会员结束时间",order = 7)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ColumnWidth(18)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private LocalDateTime sVipEndTime;

    @ApiModelProperty("开通Vip时间")
    @ExcelProperty(value = "成为会员时间",order = 8)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ColumnWidth(18)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startsVipTime;

    *//**
     * 购物积分
     *//*
    @ExcelIgnore
    @ApiModelProperty(value = "购物积分")
    @TableField("`buy_integral`")
    private BigDecimal buyIntegral;


    @TableField("`is_vip`")
    @ExcelIgnore
    @ApiModelProperty("是否是会员")
    private Boolean isVip;

    @ExcelProperty(value = "会员类型",order = 4)
    @ApiModelProperty("用户类型")
    private String isVipDesc;
*/
    @ExcelIgnore
    @TableField("`user_code`")
    @ApiModelProperty("编码")
    private String userCode;


    /**
     * 邀请会员数
     */
    @ExcelIgnore
    @ApiModelProperty(value = "邀请会员数")
    @TableField("`invite_vip_count`")
    private Integer inviteVipCount;

    /**
     * 邀请代理商数
     */
    @ExcelIgnore
    @ApiModelProperty(value = "邀请代理商数")
    @TableField("`invite_partner_count`")
    private Integer invitePartnerCount;

    /**
     * 邀请经销商数
     */
    @ExcelIgnore
    @ApiModelProperty(value = "邀请经销商数")
    @TableField("`invite_distributor_count`")
    private Integer inviteDistributorCount;


    @ExcelIgnore
    private LocalDateTime createTime;
}
